[c语言]检测 2种键盘输入,这样行不行呢
来源:百度知道 编辑:UC知道 时间:2024/05/08 14:23:06
第一种hello 0 0 a
第二种.
if(scanf("%s %d %d %c",&word,&row,&col,&orientation) == 4){
}else{
if(getchar()!=‘.’)printf(“输入有误”);
}
感谢levin_1
liujq007
修正后如下
int input = scanf("%s %d %d %c",word,&row,&col,&orientation);
if(input == 4){
}else if ( (input == 1) && (strncmp(word,".") == 0) ){
}else{
printf(“输入有误”);
}
第二种.
if(scanf("%s %d %d %c",&word,&row,&col,&orientation) == 4){
}else{
if(getchar()!=‘.’)printf(“输入有误”);
}
感谢levin_1
liujq007
修正后如下
int input = scanf("%s %d %d %c",word,&row,&col,&orientation);
if(input == 4){
}else if ( (input == 1) && (strncmp(word,".") == 0) ){
}else{
printf(“输入有误”);
}
scanf返回的是你正确输入变量的数目,如果你输入hello 0 a 0
那么word就得到了正确的值,row也得到了正确的,col得到了错误的,那么后面的orientation就得不到值了,那么scanf的返回值是2.
如果只有你所说的这两种输入,而没有其他错误的输入的话,你的程序的逻辑是可以的
word是字符串(字符数组),%s就不需要用&
if(scanf("%s %d %d %c",word,&row,&col,&orientation) == 4){
}else{
if(getchar()!=‘.’)printf(“输入有误”);
}
...strcmp
还有你的双引号和单引号貌似都是圆角的吧?